package JAVACORE_TRAINING.BASIC_JAVA.STRUCTURE_PROGRAMMING.EXCERCISES;

import java.util.Scanner;

public class EXCERCISE04 {

	public static void main(String[] args) {
		// 1. Mời nhập vào Tháng?
		System.out.println("Mời nhập vào Tháng: ");
		Scanner obj = new Scanner(System.in);
		String strTemp = obj.nextLine();

		// 2. Kiểm tra rỗng hoặc null
		if (strTemp.isEmpty()) {
			System.out.println("[Bắt Buộc] Bạn cần phải nhập vào Tháng!");
		} else {
			// 3. Chuyển đổi giá trị tháng --> gán cho biến Tháng
			int iMonth = Integer.parseInt(strTemp);

			// 4. Mời nhập vào Năm?
			System.out.println("Mời nhập vào Năm: ");
			strTemp = obj.nextLine();

			// 5. Kiểm tra rỗng hoặc null
			if (strTemp.isEmpty()) {
				System.out.println("[Bắt Buộc] Bạn cần phải nhập vào Năm!");
			} else {

				// 6. Chuyển đổi giá trị năm --> gán cho biến Năm
				int iYear = Integer.parseInt(strTemp);

				// 7. So sánh giá trị các tháng đã cho trước để đưa ra đc số
				// ngày trong tháng
				// Cách 01: Sử dụng phát biểu If...Else
				if (iMonth == 4 || iMonth == 6 || iMonth == 9 || iMonth == 11)
					System.out.println("Tháng: " + iMonth + " - Năm: " + iYear + ", có : " + 30 + " ngày!");
				else if (iYear == 2) {
					if ((iYear % 400 == 0) || (iYear % 4 == 0 && iYear % 100 != 0)) {
						System.out.println("Tháng: " + iMonth + " - Năm: " + iYear + ", có : " + 29 + " ngày!");
					} else {
						System.out.println("Tháng: " + iMonth + " - Năm: " + iYear + ", có : " + 28 + " ngày!");
					}
				} else {
					// 8. Hiển thị kết quả về số ngày trong tháng
					System.out.println("Tháng: " + iMonth + " - Năm: " + iYear + ", có : " + 31 + " ngày!");
				}
				
				// Cách 02: Sử dụng phát biểu Switch...Case
				switch (iMonth) {
				case 4:
				case 6:
				case 9:
				case 11:
					System.out.println("Tháng: " + iMonth + " - Năm: " + iYear + ", có : " + 30 + " ngày!");
					break;
				case 2: {
					if ((iYear % 400 == 0) || (iYear % 4 == 0 && iYear % 100 != 0)){
						System.out.println("Tháng: " + iMonth + " - Năm: " + iYear + ", có : " + 29 + " ngày!");
						break;
					}
					else{
						System.out.println("Tháng: " + iMonth + " - Năm: " + iYear + ", có : " + 28 + " ngày!");
						break;
					}
				}				
				case 1:
				case 3:
				case 5:
				case 7:
				case 8:
				case 12:
					System.out.println("Tháng: " + iMonth + " - Năm: " + iYear + ", có : " + 31 + " ngày!");
					break;
				default:
					System.out.println("Bạn nhập vào Tháng ko đúng rồi!");
					break;
				}
			}
		}
	}
}
